package tests;

import static org.junit.Assert.*;
import info.Conference;

import java.util.Date;

import org.junit.Before;
import org.junit.Test;

import users.Reviewer;
import users.User;

/**
 * Junit test for the Reviewer class. 
 * @author Lun-Wei Chang
 * @version 3/19/2014
 */
public class ReviewerTest {

  /** The ID that this role is represented by. */
  public static final long ROLE_ID = 4;

  /** The ID of the Subprogram Chair that the Reviewer responds to. */
  private long my_subprogram_chair;
  
  /** A new reviewer for testing purpose. */
  private Reviewer my_reviewer;
  
  /** 
   * Constructs a new Reviewer role.
   * @throws Exception throws an exception if constructions failed. 
   */
  @SuppressWarnings("deprecation")
  @Before
  public void setUp() throws Exception {
    final User user = new User("David", "Chang", "aspirine539@gmail.com");
    final Conference meeting = new Conference(0, "UW_CSE", 
                                        "Computer Engineering", new Date(2014, 03, 31));
    my_reviewer = new Reviewer(user, meeting, my_subprogram_chair);
  }
  
  /** Tests the getSubprogramChair method. */
  @Test
  public void getSubprogramChair() {
    assertNotNull("", my_reviewer.getSubprogramChair());
  }
  
  /** Tests the getManuscripts method. */
  @Test
  public void getManuscripts() {
    assertNotNull("Empty manuscript!", my_reviewer.getManuscripts());
  }
  
  /** Tests the createReview method. */
  @Test
  public void createReview() {
    
  }

  /** Tests the getRoleID method. */
  @Test
  public void getRoleID() {
    assertNotNull("Empty Role ID", my_reviewer.getRoleID());
  }

  /** Tests the getRoleName method. */
  @Test
  public void getRoleName() {
    assertNotNull("Empty role name!", my_reviewer.getRoleName());
  }

}
